I. Field of the Invention
The invention relates generally to communications. More specifically, the invention relates to signal processing in a communication system.
II. Description of the Related Art
Wireless telephones are becoming more and more pervasive in modem society. As the demand for wireless telephones increases, the demand for higher performance telephones also increases. Among the features sought by today""s consumer are lower cost, longer battery life and increased feature sets. In order to accommodate all of these goals, a typical wireless phone comprises a multitasking microprocessor. The use of a single processor to execute multiple tasks may reduce the power consumption, size and cost of the phone. As the number of features in the phone increases, the demand on processor resources also increases. Thus, a multitasking processor in a wireless telephone is likely to be executing many tasks at one time.
In an efficiently operating telephone, a number of tasks typically appear to run in parallel. Actually, each separate task is carried out for a short period of time and, then, interrupted by the execution of other tasks. After execution of other tasks, the original task is restarted again at the point where operation was interrupted.
As the number of tasks running in parallel increases, the demand on the multitasking processor also increases. It is undesirable to have certain high priority tasks delayed due to the execution of other lower priority tasks. Therefore, it is important to properly prioritize the tasks as well as to reduce the processor resources allocated to each task, if possible. Reducing the processor resources used by the tasks also has the added benefit of decreasing the power consumed by the processor.
Among those tasks in a wireless telephone which should not be delayed are those tasks associated with processing audio signals. If the audio tasks are delayed or sporadically executed, the resulting audio quality may be degraded. The time sensitive nature of these tasks demands that they be executed in real time. Therefore, in a wireless telephone system, functions associated with audio processing and audio transmission are given high priority in the multitasking environment.
One such high priority task associated with audio processing is echo cancellation. If a local user conducts a telephone call using hands-free (i.e., speaker phone) operation, the distant user""s audio signal is produced from a speaker which provides sufficient volume for the local user to hear the audio signal without placing his ear in close proximity to the speaker. The local user""s voice signal is detected using a microphone. In addition to the local users audio signal, the microphone also detects the reproduced distant user""s audio signal output by the speaker. If this signal were to be passed back to the distant user, the distant user would hear his own voice echoed back to him with a noticeable delay. In a typical system, the round-trip delay associated with audio transmission over a wire line and wireless connection can exceed one half of a second. Such a delayed echo signal can be extremely disconcerting to the distant user. In addition, if the amplitude of the echo signal becomes excessive, feedback may occur and the system may become unstable.
In order to reduce the amplitude of such an echo signal to a level which is imperceptible to the distant user, telephones have been designed which include an echo cancellation process. The process of echo cancellation is used to determine the impulse response of an unknown echo channel. In the case of hands-free operation, the unknown echo channel is partially determined by the room response between the speaker and the microphone. The unknown echo channel also includes the response of the speaker and microphone and other intervening circuitry. Typically, the echo channel does not provide a flat frequency response and in order to characterize the echo channel, the impulse response of the echo channel must be determined over a usable band of frequencies. Once the impulse response of the unknown echo channel is identified using adaptive filtering techniques, a replica of the anticipated echo signal is generated. The echo replica is subtracted from the composite signal detected by the microphone to reduce the amplitude of the distant user""s audio signal.
An echo canceller is typically implemented as a digital adaptive filter. The frequency and amplitude response of an adaptive filter can be controlled based upon a series of adjustable tap values. The signal input to the adaptive filter is coupled to the digitized distant user""s audio signal. Based upon the adjustable tap values, the adaptive filter produces an estimated echo response signal for each audio sample received. In addition, an adaptive filter controller determines updated tap values each time a new digitized audio sample is received. Each of these tasks (tap value determination and filtering) consumes resources of the multitasking processor executing the echo cancellation process. As noted above, it is advantageous to limit the multitasking resources consumed by each process operating in parallelxe2x80x94especially those high priority tasks which must operate in real-time.
Therefore, there has been a long felt need in the industry to reduce the multitasking resources associated with the echo cancellation process.
An adaptive filter is used to estimate an unknown echo channel response. A controller determines a set of tap values for use by the adaptive filter to converge on the unknown echo channel response. A shared processor executes tasks generated by the adaptive filter and the controller. The shared processor prioritizes the tasks according to an assigned priority. The priority assigned to the adaptive filter must remain high throughout operation in order to maintain voice quality. However, the priority assigned to the controller is a function of the degree of convergence of the adaptive filter on the unknown echo channel response. As the adaptive filter converges, the priority assigned to the controller""s task is decreased. In this way, the resources of the shared processor consumed by the controller are decreased.
The invention comprises an echo canceller which has an adaptive filter. The adaptive filter has an input coupled to a digitized audio input producing samples at a first rate. The adaptive filter produces an estimated digitized audio feedback signal at the first rate based upon a set of tap values. The echo canceller also has a controller coupled to the adaptive filter which determines the set of tap values. A shared processor is coupled to the adaptive filter and the controller and services tasks of the adaptive filter and the controller. When the adaptive filter has converged upon an unknown echo channel response, the controller determines the set of tap values at a rate lower than the first rate. In one embodiment of the echo canceller, a priority of the tasks of the controller is determined based upon a degree of convergence of the adaptive filter on the unknown echo channel response. For example, the degree of convergence may be determined based upon an echo return loss value. The value of the lower rate may be determined based upon a degree of convergence of the adaptive filter on the unknown echo channel. In one embodiment, the adaptive filter and the controller are each assigned a priority at which the shared processor services tasks therefrom and the priority of the controller is lowered as a degree of convergence of the adaptive filter on the unknown echo channel is increased.
One aspect of the present invention involves a method of adaptation of echo cancellation. A task of filtering a digital audio input signal is executed to generate an estimated digital feedback audio signal. A task of determining a set of tap values to be used by the task of filtering is also executed. A priority of the determining task is determined based upon a degree of convergence of the task of filtering on an unknown echo channel response. In one embodiment, the determining task is executed at the same rate as the filtering task if the degree of convergence is low.